Next: Low-Level Parsing, Previous: Position Parse, Up: Parsing Expressions [Contents][Index]
A parser state is a list of ten elements describing
the state of the syntactic parser, after it parses the text
between a specified starting point and a specified end point in
the buffer. Parsing functions such as syntax-ppss
(see Position
Parse) return a parser state as the value. Some parsing
functions accept a parser state as an argument, for resuming
parsing.
Here are the meanings of the elements of the parser state:
nil if none.nil if none.nil if inside a string. More precisely, this
is the character that will terminate the string, or
t if a generic string delimiter character should
terminate it.t if inside a
non-nestable comment (of any comment style; see Syntax Flags); or the
comment nesting level if inside a comment that can be
nested.t if the end point is
just after a quote character.nil if not in
a comment or in a comment of style
‘a’; 1 for a comment of style
‘b’; 2 for a comment of style
‘c’; and syntax-table for
a comment that should be ended by a generic comment delimiter
character.nil.Elements 1, 2, and 6 are ignored in a state which you pass as an argument to continue parsing, and elements 8 and 9 are used only in trivial cases. Those elements are mainly used internally by the parser code.
One additional piece of useful information is available from a parser state using this function:
This function extracts, from parser state state, the last position scanned in the parse which was at top level in grammatical structure. “At top level” means outside of any parentheses, comments, or strings.
The value is nil if state
represents a parse which has arrived at a top level
position.
Next: Low-Level Parsing, Previous: Position Parse, Up: Parsing Expressions [Contents][Index]